package com.example.demo;

import com.example.demo.model.Student;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class TestController {

//    //使用Value注解方式可以读取到配置项的所有内容(自定义/系统配置项)
//    @Value("${myKey.key}")
//    private String myKey;

    //1.得到日志对象
    //在当前类中得到日志对象
    private  static Logger logger = LoggerFactory.getLogger(TestController.class);

    @RequestMapping("/hi")
    public String myString(){
        logger.info("hi Spring logger");
        return "Hi";
    }

//    //读取系统的配置项
//    @Value("${server.port}")
//    private Integer port;
//
//    @RequestMapping("/myPort")
//    public String myPort(){
//        return "端口 : " + port;
//    }


//    //读取sayString
//    @Value("${sayString}")
//    private String sayString;
//
//    @RequestMapping("/sayString")
//    public String getSayString(){
//        return sayString;
//    }

    @Value("${myKey.str1}")
    private String str1;

    @Value("${myKey.str2}")
    private String str2;

    @Value("${myKey.str3}")
    private String str3;

    @RequestMapping("/sayString")
    public void myString1(){
        System.out.println("str1 : " + str1);
        System.out.println("str2 : " + str2);
        System.out.println("str3 : " + str3);
    }

    @Autowired
    private Student student;

    @RequestMapping("/myStudent")
    public String myStudent(){
        System.out.println();
        return student.toString();
    }

    @Autowired
    private List<String> dbtype;

    @RequestMapping("/myList")
    public String myList(){
        return "dptypeSize : " + dbtype.size()
                + dbtype.get(0);
    }


//    @Value("${myString}")
//    private String mystring;
//    @RequestMapping("/mystring")
//    public String myString(){
//        return mystring;
//    }
//    @RequestMapping("/sayhi")
//    public String sayHi(){
//        return "hi,spring boot!!!";
//    }
//
//    @Value("${mykey.key1}")
//    private String mykey;
//
//    @RequestMapping("/hi")
//    public String hi(){
//        return "hi" + mykey;
//    }
//
//    //读取系统配置
//    @Value("${server.port}")
//    private Integer port;
//    @RequestMapping("/port")
//    public String rPort(){
//        return "端口为 : " + port;
//    }
//    //properties  优点 : 写法非常简单,不易出错     缺点  : 写法不够灵活和简便
//    如 : 数据库的配置,同样的前缀需要写多次


}
